﻿namespace WebDevUtilities.CssSpriteGenerator.Logic
{
    using System;
    using System.Collections.Generic;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;

    class LayoutProperties
    {
        public LayoutProperties()
        {
            inputFilePaths = null;
            outputSpriteFilePath = "";
            outputCssFilePath = "";
            layout = "";
            distanceBetweenImages = 0;
            marginWidth = 0;
            imagesInRow = 0;
            imagesInColumn = 0;
            spriteClassname = "sprite";
            customClassname = "";
            useCustomClassname = false;
            spriteImageFormat = ImageFormat.Png;
        }

        public string OutputSpriteFilePath
        {
            get { return outputSpriteFilePath; }
            set { outputSpriteFilePath = value; }
        }

        public string OutputCssFilePath
        {
            get { return outputCssFilePath; }
            set { outputCssFilePath = value; }
        }

        public string[] InputFilePaths
        {
            get { return inputFilePaths; }
            set { inputFilePaths = value; }
        }

        public int DistanceBetweenImages
        {
            get { return distanceBetweenImages; }
            set { distanceBetweenImages = value; }
        }

        public string Layout
        {
            get { return layout; }
            set { layout = value; }
        }

        public int MarginWidth
        {
            get { return marginWidth; }
            set { marginWidth = value; }
        }

        public int ImagesInRow
        {
            get { return imagesInRow; }
            set { imagesInRow = value; }
        }

        public int ImagesInColumn
        {
            get { return imagesInColumn; }
            set { imagesInColumn = value; }
        }

        public string SpriteClassname
        {
            get { return spriteClassname; }
            set { spriteClassname = value; }
        }

        public string CustomClassname
        {
            get { return customClassname; }
            set { customClassname = value; }
        }

        public bool UseCustomClassname
        {
            get { return useCustomClassname; }
            set { useCustomClassname = value; }
        }

        public ImageFormat SpriteImageFormat
        {
            get { return spriteImageFormat; }
            set { spriteImageFormat = value; }
        }

        private string[] inputFilePaths;
        private string outputSpriteFilePath;
        private string outputCssFilePath;
        private string layout;        
        private int distanceBetweenImages;
        private int marginWidth;
        private int imagesInRow;
        private int imagesInColumn;
        private string spriteClassname;
        private string customClassname;
        private bool useCustomClassname;
        private ImageFormat spriteImageFormat;
    }
}